Conventionally, memory performance is affected by the need to limit the amount of current used to program memory cells. If too much current is applied to a memory cell, the memory cell may be damaged. However, limiting the amount of current used to program the memory cell increases the amount of time needed to program the cell. Thus, what are needed are methods and apparatus for quickly programming memory cells without risking damage to the memory cells.